package com.dkd.day20250714;

import java.util.LinkedList;
import java.util.Scanner;

public class Main14 {
    public static void main(String[] args) {
        //存在一个m×n的二维数组，其成员取值范围为0或1。
        //
        //其中值为1的成员具备扩散性，每经过1S，将上下左右值为0的成员同化为1。
        //
        //二维数组的成员初始值都为0，将第[i,j]和[k,l]两个个位置上元素修改成1后，求矩阵的所有元素变为1需要多长时间。
        //
        //输入描述
        //输入数据中的前2个数字表示这是一个m×n的矩阵，m和n不会超过1024大小；
        //
        //中间两个数字表示一个初始扩散点位置为i,j；
        //
        //最后2个数字表示另一个扩散点位置为k,l。
        //
        //输出描述
        //输出矩阵的所有元素变为1所需要秒数。
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        String [] words = s.split(",");
        int[] arr = new int[words.length];
        for (int i = 0; i < words.length; i++) {
            arr[i] = Integer.parseInt(words[i]);
        }
        solve(arr);

    }

    public static void solve(int[]arr){
        int m = arr[0];
        int n = arr[1];

        int i = arr[2];
        int j = arr[3];

        int k = arr[4];
        int l = arr[5];

        int[][] martix = new int[m][n];
        martix[i][j] = 1;
        martix[k][l] = 1;

        int count = m*n -2;

        LinkedList<int[]> list = new LinkedList<>();
        list.add(new int[]{i,j});
        list.add(new int[]{k,l});

        int[][] off = {{0,1},{1,0},{0,-1},{-1,0}};

        int day = 0;

        while(list.size()>0 && count>0){
            LinkedList<int[]> temp = new LinkedList<>();

            for(int[] a : list){
                int x = a[0];
                int y = a[1];
                for(int [] b : off){
                   int  newX = x+b[0];
                   int newY = y+b[1];
                   if(newX>=0 && newX<m && newY>=0 && newY<n && martix[newX][newY]==0){
                       count--;
                       temp.add(new int[]{newX,newY});
                   }
                }
            }

            day++;
            list.clear();
            list.addAll(temp);
        }

        System.out.println(day);

    }
}
